/**
 * <h3>CooperationMapper</h3>
 * <p> 文创合作数据访问层接口 </p>
 *
 * <h3>功能描述</h3>
 * <p> 定义对文创合作表的基础CRUD操作及自定义查询方法，配合MyBatis实现数据持久化 </p>
 * <p> 接口继承自 MyBatis Plus 的 BaseMapper，扩展了基于业务需求的自定义查询方法 </p>
 *
 * <h3>元数据</h3>
 * <ul>
 *    <li> 作者：郭强 </li>
 *    <li> 创建日期：2025年05月17日 14:35:55 </li>
 * </ul>
 *
 * <h3>其他信息</h3>
 * <ul>
 *    <li> 示例代码：{@code @Autowired private CooperationMapper cooperationMapper;}</li>
 * </ul>
 *
 * @implSpec 实现了 MyBatis Plus 的 {@link BaseMapper} 接口，并扩展了文创相关的业务方法。
 * @since 1.0.0
 */

package com.dnndo.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dnndo.system.domain.Cooperation;
import com.dnndo.system.domain.dto.CooperationDTO;
import com.dnndo.system.domain.vo.CooperationVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 文创合作数据访问层接口
 */
@Mapper
public interface CooperationMapper extends BaseMapper<CooperationDTO> {

    /**
     * 查询所有或符合条件的文创合作列表
     * @param dto 封装查询条件的 Cooperation 对象
     * @return List<CooperationVO> 符合条件的文创合作信息列表
     * @see CooperationVO
     */
    List<Cooperation> selectCooperationList(CooperationDTO dto);

    /**
     * 根据文创合作ID查询详细信息
     * @param cooperateId 文创合作唯一标识符
     * @return CooperationVO 文创合作实体对象
     * @see Cooperation
     */
    CooperationDTO selectCooperationListById(Long cooperateId);

    /**
     * 根据文创合作ID更新信息
     * @param cooperation 封装更新数据的 Cooperation 对象
     * @return int 受影响的记录数（通常为1）
     * @see CooperationDTO
     */
    int updateCooperationById(CooperationDTO cooperation);

    /**
     * 新增一条文创合作记录
     * @param cooperation 封装新增数据的 Cooperation 对象
     * @return int 受影响的记录数（通常为1）
     * @see CooperationDTO
     */
    int insertCooperation(CooperationDTO cooperation);

    /**
     * 根据文创合作ID删除记录
     * @param cooperateId 文创合作唯一标识符
     * @return int 受受影响的记录数（通常为1）
     * @see CooperationDTO
     */
    int deleteCooperationById(Integer cooperateId);
}
